From e0190c4fb80182e4436f394213d46fafebc03469 Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Tue, 18 Jun 2024 10:40:01 +0200 Subject: [PATCH] Prevent which-key faces from over-extending during formatting * lisp/which-key.el (which-key--pad-column): Instead of injecting the description using a left-aligned format-string (%-[n]s), we manually add the necessary padding so that the text properties don't extend beyond the description. This allows us to use a face with a background without it extending until the end of a column. See also 63a6fb2a7a02ca88835c3fd473894d3b7d39ff15 for a similar issue with Quick Help. --- lisp/which-key.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lisp/which-key.el b/lisp/which-key.el index a2355527dd3..a4720040f7a 100644 --- a/lisp/which-key.el +++ b/lisp/which-key.el @@ -2005,10 +2005,12 @@ that width." col-keys 2 which-key-min-column-description-width))) (col-width (+ col-key-width col-sep-width col-desc-width)) - (col-format (concat "%" (int-to-string col-key-width) - "s%s%-" (int-to-string col-desc-width) "s"))) + (col-format (concat "%" (int-to-string col-key-width) "s%s%s"))) (cons col-width - (mapcar (lambda (k) (apply #'format col-format k)) + (mapcar (pcase-lambda (`(,key ,sep ,desc ,_doc)) + (concat + (format col-format key sep desc) + (make-string (- col-desc-width (length desc)) ?\s))) col-keys)))) (defun which-key--partition-list (n list) -- 2.30.2